#ifndef ARMOR_DETECTOR_DEBUG_H
#define ARMOR_DETECTOR_DEBUG_H

#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
#include "armor_detector_types.h"

class ArmorDetectorDebug {
public:
    ArmorDetectorDebug();

    // 显示调试信息的函数
    void showDebugImages(const cv::Mat& originalImage,
                        const cv::Mat& binaryImage,
                        const std::vector<LightBar>& lights,
                        const std::vector<Armor>& armors,
                        const std::string& windowName = "Armor Detector Debug");

    // 显示二值化图像
    void showBinaryImage(const cv::Mat& binaryImage,
                        const std::string& windowName = "Binary Image");

    // 显示角点优化对比
    void showCornerOptimization(const cv::Mat& originalImage,
                               const std::vector<Armor>& armors,
                               const std::string& windowName = "Corner Optimization");

    // 显示数字识别结果
    void showNumberRecognition(const std::vector<Armor>& armors,
                              const std::string& windowName = "Number Recognition");

    // 设置是否显示调试信息
    void setDebugEnabled(bool enabled) { debug_enabled_ = enabled; }

    // 获取调试状态
    bool isDebugEnabled() const { return debug_enabled_; }

private:
    bool debug_enabled_;
    cv::Size display_size_;
};

#endif // ARMOR_DETECTOR_DEBUG_H
